1. Field of the Invention
This invention relates to a decoder and a decoding method adapted to soft-output decoding.
2. Related Background Art
There have been many studies in recent years for minimizing symbol error rates by obtaining soft-outputs for the decoded outputs of inner codes of concatenated codes or the outputs of recursive decoding operations using a recursive decoding method. There have also been studies for developing decoding methods that are adapted to producing soft-outputs. For example, Bahl, Cocke, Jelinek and Raviv, “Optimal decoding of linear codes for minimizing symbol error rates”, IEEE Trans. Inf. Theory, vol. It-20, PP. 284–287, March 1974 describes an algorithm for minimizing symbol error rates when decoding predetermined codes such as convolutional codes. The algorithm will be referred to as BCJR algorithm hereinafter. The BCJR algorithm is designed to output not each symbol but the likelihood of each symbol as a result of decoding operation. Such an outputs is referred to as soft-output. The BCJR algorithm will be discussed below firstly by referring to FIG. 1. Assume that digital information is put into convolutional codes by encoder 201 of a transmitter (not shown), whose output is then input to a receiver (not shown) by way of a memoryless channel 202 having noises and decoded by decoder 203 of the receiver for observation.
The M states (transitional states) representing the contents of the shift registers of the encoder 201 are denoted by integer m(m=0, 1, . . . , M−1) and the state at time t is denoted by St. If information of k bits is input in a time slot, the input at time t is expressed by it=(it1, it2, . . . , itk) and the input system is expressed by I1T=(i1, i2, . . . , iT). If there is a transition from state m′ to state m, the information bits corresponding to the transition are expressed by i(m′, m)=(i1(m′, m), i2(m′, m), . . . , ik(m′, m)). Additionally, if a code of n bits is output in a time slot, the output at time t is expressed by xt=(xt1, xt2, . . . , xtn) and the output system is expressed by X1T=(x1, x2, . . . , xT). If there is a transition from state m′ to state m, the information bits corresponding to the transition are expressed by x(m′, m)=(x1(m′, m), x2(m′, m), . . . , xk(m′, m)).
The encoder 201 starts to produce convolutional codes at state S0=0 and ends at state ST=0 after outputting X1T. The inter-state transition probabilities Pt(m|m′) of the above encoder are defined by formula (1) below;Pt(m|m′)=Pr{St=m|St−1=m′}  (1)where Pr {A|B} at the right side of the above equation represents the conditional probability with which A occurs under the conditions in which B occurs. The transition probabilities Pt(m|m′) are equal to the probability Pr {it=i} that input it at time t is equal to i when a transition from state m′ to state m occurs with input i as shown by formula (2) below.Pt(m|m′)=Pr{it=i}  (2)
The memoryless channel 202 having noises receives X1T as input and outputs Y1T. If a received value of n bits is output in a time slot, the output at time t is expressed by yt=(yt1, yt2, . . . , ytk) and the output system is expressed by Y1T=(y1, y2, . . . , yT). Then, the transition probabilities of the memoryless channel 202 having noises can be defined for all values of t (1≦t≦T) by using the transition probability of each symbol, or Pr {yj|xj}.
                              Pr          ⁢                      {                                          Y                1                t                            |                              X                1                t                                      }                          =                              ∏                          j              =              1                        t                    ⁢                      Pr            ⁢                          {                                                y                  j                                |                                  x                  j                                            }                                                          (        3        )            
Now, λtj is defined by formula (4) below as the likelihood of input information at time t when Y1T is received, or the soft-output to be obtained.
                              λ          tj                =                              Pr            ⁢                          {                                                i                  tj                                =                                  1                  |                                      Y                    1                    T                                                              }                                            Pr            ⁢                          {                                                i                  tj                                =                                  0                  |                                      Y                    1                    T                                                              }                                                          (        4        )            
With the BCJR algorithm, probabilities αt, βt and γt are defined respectively by means of formulas (5) through (7) below. Note that Pr {A;B} represents the probability with which both A and B occur.αt(m)=Pr{St=m; Y1T}  (5)βt(m)=Pr{Yt+1T|St=m}  (6)γt(m′,m)=Pr{St=m; yt|St−1=m′}  (7)
Now, the probabilities of αt, βt and γt will be described by referring to FIG. 2, which is a trellis diagram, or a state transition diagram, of the encoder 201. Referring to FIG. 2, αt−1 corresponds to the passing probability of each state at time t−1 as computed on a time series basis from the state of starting the coding S0=0 by using the received value and βt corresponds to the passing probability of each state at time t as computed on an inverse time series basis from the state of ending the coding ST=0 by using the received value, while γt corresponds to the reception probability of the output of each branch showing a transition from a state to another at time t as computed on the basis of the received value and the input probability.
Then, the soft-output λtj is expressed in terms of the probabilities αt, βt and γt in a manner as shown in formula (8) below.
                              λ          tj                =                                            ∑                                                                    m                    ′                                    ,                  m                                                                                            i                      j                                        ⁡                                          (                                                                        m                          ′                                                ,                        m                                            )                                                        =                  1                                                      ⁢                                                            α                  t                                ⁡                                  (                                      m                    ′                                    )                                            ⁢                                                γ                  t                                ⁡                                  (                                                            m                      ′                                        ,                    m                                    )                                            ⁢                                                β                  t                                ⁡                                  (                  m                  )                                                                                        ∑                                                                    m                    ′                                    ,                  m                                                                                            i                      j                                        ⁡                                          (                                                                        m                          ′                                                ,                        m                                            )                                                        =                  0                                                      ⁢                                                            α                  t                                ⁡                                  (                                      m                    ′                                    )                                            ⁢                                                γ                  t                                ⁡                                  (                                                            m                      ′                                        ,                    m                                    )                                            ⁢                                                β                  t                                ⁡                                  (                  m                  )                                                                                        (        8        )            
Meanwhile, formula (9) below holds true for t=1, 2, . . . , T.
                                          α            t                    ⁡                      (            m            )                          =                              ∑                                          m                ′                            =              0                                      M              -              1                                ⁢                                                    α                                  t                  -                  1                                            ⁡                              (                                  m                  ′                                )                                      ⁢                                          γ                t                            ⁡                              (                                                      m                    ′                                    ,                  m                                )                                                                        (        9        )                            where α0(0)=1, α0(m)=0(m≠0)        
Similarly, formula (10) holds true also for t=1, 2, . . . , T.
                                          β            t                    ⁡                      (            m            )                          =                              ∑                                          m                ′                            =              0                                      M              -              1                                ⁢                                                    β                                  t                  +                  1                                            ⁡                              (                                  m                  ′                                )                                      ⁢                                          γ                                  t                  +                  1                                            ⁡                              (                                  m                  ,                                      m                    ′                                                  )                                                                        (        10        )                            where βT(0)=1, βT(m)=0(m≠0)        
Finally, formula (10) holds true for γt.
                                          γ            t                    ⁡                      (                                          m                ′                            ,              m                        )                          =                  {                                                                                                                                                                  P                          t                                                ⁡                                                  (                                                      m                            |                                                          m                              ′                                                                                )                                                                    ·                      Pr                                        ⁢                                          {                                                                        y                          t                                                |                                                  x                          ⁡                                                      (                                                                                          m                                ′                                                            ,                              m                                                        )                                                                                              }                                                                                                                                                                                                          =                                          Pr                      ⁢                                                                        {                                                                                    i                              t                                                        =                                                          i                              ⁡                                                              (                                                                                                      m                                    ′                                                                    ,                                  m                                                                )                                                                                                              }                                                ·                        Pr                                            ⁢                                              {                                                                              y                            t                                                    |                                                      x                            ⁡                                                          (                                                                                                m                                  ′                                                                ,                                m                                                            )                                                                                                      }                                                                                                                                                                                         :                                         ⁢                                                                                           *                                            ⁢                      1                                                                                                                                        0                    ⁢                                             :                                         ⁢                                                                                           *                                            ⁢                      2                                                                                            ⁢                                                  ⁢                          :                          ⁢                                                           *                            ⁢              1                        ⁢                                                  ⁢            …            ⁢                                                  ⁢            when            ⁢                                                  ⁢            a            ⁢                                                  ⁢            transition            ⁢                                                  ⁢            occurs            ⁢                                                  ⁢            from            ⁢                                                  ⁢                          m              ′                        ⁢                                                  ⁢            to            ⁢                                                  ⁢            m            ⁢                                                  ⁢            with            ⁢                                                  ⁢            input            ⁢                                                  ⁢                          i              .                                                          ⁢                                                          ⁢                              :                                        ⁢                                                           *                            ⁢              2                        ⁢                                                  ⁢            …            ⁢                                                  ⁢            when            ⁢                                                  ⁢            no            ⁢                                                  ⁢            transition            ⁢                                                  ⁢            occurs            ⁢                                                  ⁢            from            ⁢                                                  ⁢                          m              ′                        ⁢                                                  ⁢            to            ⁢                                                  ⁢            m            ⁢                                                  ⁢            with            ⁢                                                  ⁢            input            ⁢                                                  ⁢                          i              .                                                          (        11        )            
Thus, for soft-output decoding, applying the BCJR algorithm, the decoder 203 determines the soft-output λt by passing through the steps shown in FIG. 3, utilizing the above relationships.
More specifically, in Step S201, the decoder 203 computes the probabilities αt (m) and γt (m′, m), using the formulas (9) and (11) above, each time it receives yt.
Then, in Step S202, after receiving all the system Y1T, the decoder 203 computes the probability βt (m) of state m for all values of time t, using the formula (10) above.
Thereafter, in Step S203, the decoder 203 computes the soft-output λt at each time t by substituting the values obtained in Steps S201 and S202 for the probabilities αt, βt, and γt in the formula (8) above.
With the above described processing steps, the decoder 203 can carry out the soft-output decoding, applying the BCJR algorithm.
However, the BCJR algorithm is accompanied by a problem that it involves a large volume of computational operations because it requires to directly hold probabilities as values to be used for computations and employ multiplications. As an attempt for reducing the volume of computational operations, Robertson, Villebrun and Hoeher, “A Comparison of Optimal and sub-optimal MAP decoding algorithms operating in the domain”, IEEE Int. Conf. On Communications, pp. 1009–1013, June 1995, proposes Max-Log-MAP Algorithm and Log-MAP Algorithm (to be referred to as Max-Log-BCJR algorithm and Log-BCJR algorithm respectively hereinafter).
Firstly, Max-Log-BCJR algorithm will be discussed below. With the Max-Log-BCJR algorithm, the probabilities αt, βt and γt are expressed in terms of natural logarithm so that the multiplications for determining the probabilities are replaced by a logarithmic addition as expressed by formula (12) below and the logarithmic addition is approximated by a logarithmic maximizing operation as expressed by formula (13) below. Note that in the formula (13), max (x, y) represents a function for selecting either x and y that has a larger value.log(ex·ey)=x+y  (12)log(ex+ey)=max(x,y)  (13)
For simplification, the natural logarithm is expressed by I and values αt, βt, γt and λt are expressed respectively by Iαt, Iβt, Iγt and Iλt in the domain of the natural logarithm as shown in formula (14) below.
                    {                                                                              I                  ⁢                                                                          ⁢                                                            α                      t                                        ⁡                                          (                      m                      )                                                                      =                                  log                  ⁡                                      (                                                                  α                        t                                            ⁡                                              (                        m                        )                                                              )                                                                                                                                            I                  ⁢                                                                          ⁢                                                            β                      t                                        ⁡                                          (                      m                      )                                                                      =                                  log                  ⁡                                      (                                                                  β                        t                                            ⁡                                              (                        m                        )                                                              )                                                                                                                                            I                  ⁢                                                                          ⁢                                                            γ                      t                                        ⁡                                          (                      m                      )                                                                      =                                  log                  ⁡                                      (                                                                  γ                        t                                            ⁡                                              (                        m                        )                                                              )                                                                                                                                            I                  ⁢                                                                          ⁢                                      λ                    t                                                  =                                  log                  ⁢                                                                          ⁢                                      λ                    t                                                                                                          (        14        )            
With the Max-Log-BCJR algorithm, the log likelihoods Iαt, Iβt, Iγt are approximated by using formulas (15) through (17) below. Note that the maximum value max in state m′ at the right side of the equation of (15) is determined in state m′ showing a transition to state m. Similarly, the maximum value max in state m′ at the right side of the equation of (16) is determined in state m′ showing a transition to state m.
                              I          ⁢                                          ⁢                                    α              t                        ⁡                          (              m              )                                      ≅                              max                          m              ′                                ⁢                      (                                          I                ⁢                                                                  ⁢                                                      α                                          t                      -                      1                                                        ⁡                                      (                                          m                      ′                                        )                                                              +                              I                ⁢                                                                  ⁢                                                      γ                    t                                    ⁡                                      (                                                                  m                        ′                                            ,                      m                                        )                                                                        )                                              (        15        )                                          I          ⁢                                          ⁢                                    β              t                        ⁡                          (              m              )                                      ≅                              max                          m              ′                                ⁢                      (                                          I                ⁢                                                                  ⁢                                                      β                                          t                      +                      1                                                        ⁡                                      (                                          m                      ′                                        )                                                              +                              I                ⁢                                                                  ⁢                                                      γ                                          t                      +                      1                                                        ⁡                                      (                                          m                      ,                                              m                        ′                                                              )                                                                        )                                              (        16        )            Iγt(m′,m)=log(Pr{it=i(m′,m)})+log(Pr{yt|x(m′,m)})  (17)
With the Max-Log-BCJR algorithm, logarithmic soft-output Iλt is also approximated by using formula (18) below. Note that, in the equation of (18), the maximum value max of the first term at the right side is determined in state m′ showing a transition to state m when “1” is input and the maximum value max of the second term at the right side of the above equation is determined in state m′ showing a transition to state m when “0” is input.
                                                                        I                ⁢                                                                  ⁢                                  λ                  tj                                            ≅                            ⁢                                                                    max                                                                                            m                          ′                                                ,                        m                                                                                                                          i                            j                                                    ⁡                                                      (                                                                                          m                                ′                                                            ,                              m                                                        )                                                                          =                        1                                                                              ⁢                                      (                                                                  I                        ⁢                                                                                                  ⁢                                                                              α                                                          t                              -                              1                                                                                ⁡                                                      (                                                          m                              ′                                                        )                                                                                              +                                              I                        ⁢                                                                                                  ⁢                                                                              γ                            t                                                    ⁡                                                      (                                                                                          m                                ′                                                            ,                              m                                                        )                                                                                              +                                              I                        ⁢                                                                                                  ⁢                                                                              β                            t                                                    ⁡                                                      (                            m                            )                                                                                                                )                                                  -                                                                                                      ⁢                                                max                                                                                    m                        ′                                            ,                      m                                                                                                                i                          j                                                ⁡                                                  (                                                                                    m                              ′                                                        ,                            m                                                    )                                                                    =                      0                                                                      ⁢                                  (                                                            I                      ⁢                                                                                          ⁢                                                                        α                                                      t                            -                            1                                                                          ⁡                                                  (                                                      m                            ′                                                    )                                                                                      +                                          I                      ⁢                                                                                          ⁢                                                                        γ                          t                                                ⁡                                                  (                                                                                    m                              ′                                                        ,                            m                                                    )                                                                                      +                                                                  β                        t                                            ⁡                                              (                        m                        )                                                                              )                                                                                        (        18        )            
Thus, for soft-output decoding, applying the Max-Log-BCJR algorithm, the decoder 203 determines soft-output λt by passing through the steps shown in FIG. 4, utilizing the above relationships.
More specifically, in Step S211, the decoder 203 computes the log likelihoods Iαt (m) and Iγt (m′, m), using the formulas (15) and (17) above, each time it receives yt.
Then, in Step S212, after receiving all the system Y1T, the decoder 203 computes the log likelihood Iβt (m) of state m for all values of time t, using the formula (16) above.
Thereafter, in Step S213, the decoder 203 computes the log soft-output Iλt at each time t by substituting the values obtained in Steps S211 and S212 for the log likelihoods Iαt, Iβt and Iγt in the formula (18) above.
With the above described processing steps, the decoder 203 can carry out the soft-output decoding, applying the Max-Log-BCJR algorithm.
As pointed out above, since the Max-Log-BCJR algorithm does not involve any multiplications, it can greatly reduce the volume of computational operations if compared with the BCJR algorithm.
Now, the Log-BCJR algorithm will be discussed below. The Log-BCJR algorithm is devised to improve the accuracy of approximation of the Max-Log-BCJR algorithm. More specifically, in the Log-BCJR algorithm, a correction term is added to the addition of probabilities of the formula (13) to obtain formula (19) below so that the sum of the addition of the formula (19) may represent a more accurate logarithmic value. The correction is referred to as log-sum correction hereinafter.log(ex+ey)=max(x,y)+log(1+e−|x−y|)  (19)
The logarithmic operation of the left side of the equation (19) is referred to as log-sum operation and, for the purpose of convenience, the operator of a log-sum operation is expressed by “#” as shown in formula (20) below (although it is expressed by “E” in the above paper) to follow the numeration system described in S. S. Pietrobon, “Implementation and performance of a turbo/MAP decoder, Int. J. Satellite Commun., vol. 16, pp. 23–46, January–February 1998”. Then, the operator of a cumulative addition is expressed by “#Σ” as shown in formula (21) below (although it is expressed by “E” in the above paper).x#y=log(ex+ey)  (20)
                              #          ⁢                                    ∑                              i                =                0                                            M                -                1                                      ⁢                          x              i                                      =                  (                                    (                                                          ⁢                              …                ⁢                                                                  ⁢                                  (                                                            (                                                                        x                          0                                                ⁢                                                                                                  ⁢                        #                        ⁢                                                                                                  ⁢                                                  x                          1                                                                    )                                        ⁢                                                                                  ⁢                    #                    ⁢                                                                                  ⁢                                          x                      2                                                        )                                ⁢                                                                  ⁢                …                            ⁢                                                          )                        ⁢                                                  ⁢            #            ⁢                                                  ⁢                          x                              M                -                1                                              )                                    (        21        )            
By using the operator, the log likelihoods Iαt and Iβt and the log soft-output Iλt can be expressed respectively in a manner as shown in formulas (22) through (24) below. Since the log likelihood Iγt is expressed by the formula (17) above, it will not be described here any further.
                              I          ⁢                                          ⁢                                    α              t                        ⁡                          (              m              )                                      =                  #          ⁢                                    ∑                                                m                  ′                                =                0                                            M                -                1                                      ⁢                          (                                                I                  ⁢                                                                          ⁢                                                            α                                              t                        -                        1                                                              ⁡                                          (                                              m                        ′                                            )                                                                      +                                  I                  ⁢                                                                          ⁢                                                            γ                      t                                        ⁡                                          (                                                                        m                          ′                                                ,                        m                                            )                                                                                  )                                                          (        22        )                                          I          ⁢                                          ⁢                                    β              t                        ⁡                          (              m              )                                      =                  #          ⁢                                    ∑                                                m                  ′                                =                0                                            M                -                1                                      ⁢                          (                                                I                  ⁢                                                                          ⁢                                                            β                                              t                        +                        1                                                              ⁡                                          (                                              m                        ′                                            )                                                                      +                                  I                  ⁢                                                                          ⁢                                                            γ                                              t                        +                        1                                                              ⁡                                          (                                              m                        ,                                                  m                          ′                                                                    )                                                                                  )                                                          (        23        )                                                                                    I                ⁢                                                                  ⁢                                                      λ                    tj                                    ⁡                                      (                    m                    )                                                              =                            ⁢                                                #                  ⁢                                                            ∑                                                                                                    m                            ′                                                    ,                          m                                                                                                                                    i                              j                                                        ⁡                                                          (                                                                                                m                                  ′                                                                ,                                m                                                            )                                                                                =                          1                                                                                      ⁢                                          (                                                                        I                          ⁢                                                                                                          ⁢                                                                                    α                                                              t                                -                                1                                                                                      ⁡                                                          (                                                              m                                ′                                                            )                                                                                                      +                                                  I                          ⁢                                                                                                          ⁢                                                                                    γ                              t                                                        ⁡                                                          (                                                                                                m                                  ′                                                                ,                                m                                                            )                                                                                                      +                                                  I                          ⁢                                                                                                          ⁢                                                                                    β                              t                                                        ⁡                                                          (                              m                              )                                                                                                                          )                                                                      -                                                                                                      ⁢                              #                ⁢                                                      ∑                                                                                            m                          ′                                                ,                        m                                                                                                                          i                            j                                                    ⁡                                                      (                                                                                          m                                ′                                                            ,                              m                                                        )                                                                          =                        0                                                                              ⁢                                      (                                                                  I                        ⁢                                                                                                  ⁢                                                                              α                                                          t                              -                              1                                                                                ⁡                                                      (                                                          m                              ′                                                        )                                                                                              +                                              I                        ⁢                                                                                                  ⁢                                                                              γ                            t                                                    ⁡                                                      (                                                                                          m                                ′                                                            ,                              m                                                        )                                                                                              +                                              I                        ⁢                                                                                                  ⁢                                                                              β                            t                                                    ⁡                                                      (                            m                            )                                                                                                                )                                                                                                          (        24        )            
Note that the cumulative addition of the log-sum operations in state m′ at the right side of the equation of (22) is determined in state m′ showing a transition to state m. Similarly, the cumulative addition of the log-sun operations in state m′ at the right side of the equation of (23) is determined in state m′ showing a transition to state m. In the equation of (24), the cumulative addition of the log-sum operations at the first term of the right side is determined in state m′ showing a transition to state m when the input is “1” and the cumulative addition of the log-sum operations at the second term of the right side is determined in state m′ showing a transition to state m when the input is “0”.
Thus, for soft-output decoding, applying the Log-BCJR algorithm, the decoder 203 determines soft-output λt by passing through the steps shown in FIG. 4, utilizing the above relationships.
More specifically, in Step S211, the decoder 203 computes the log likelihoods Iαt (m) and Iγt (m′, m), using the formulas (22) and (17) above, each time it receives yt.
Then, in Step S212, after receiving all the system Y1T, the decoder 203 computes the log likelihood Iβt (m) of state m for all values of time t, using the formula (23) above.
Thereafter, in Step S213, the decoder 203 computes the log soft-output Iλt at each time t by substituting the values obtained in Steps S211 and S212 for the log likelihoods Iαt, Iβt and Iγt in the formula (24) above.
With the above described processing steps, the decoder 203 can carry out the soft-output decoding, applying the Log-BCJR algorithm. Since the correction term that is the second term at the right side of the above equation of (19) is expressed by a one-dimensional function relative to variable |x−y|, the decoder 203 can accurately calculate probabilities when the values of the second term are stored in advance in the form of a table in a ROM (Read-Only Memory).
By comparing the Log-BCJR algorithm with the Max-Log-BCJR algorithm, it will be seen that, while it entails an increased volume of arithmetic operations, it does not involve any multiplications and the output is simply the logarithmic value of the soft-output of the BCJR algorithm if the quantization error is disregarded.
Meanwhile, methods that can be used for correcting the above described log-sum includes the secondary approximation method of approximating the relationship with variable |x−y| by so-called secondary approximation and the interval division method of arbitrarily dividing variable |x−y| into intervals and assigning predetermined values to the respective intervals in addition to the above described method of preparing a table for the values of the correction term. These log-sum correction methods are developed by putting stress on the performance of the algorithm in terms of accurately determining the value of the correction term. However, they are accompanied by certain problems including a large circuit configuration and slow processing operations.
Therefore, studies are being made to develop high speed log-sum correction methods. Such methods include the linear approximation method of linearly approximating the relationship with variable |x−y| and/or the threshold value approximation method of determining values for predetermined intervals of variable |x−y| respectively by using predetermined threshold values.
The linear approximation method is designed to approximate function F=log {1+e{circumflex over (0)}(−|x−y|)} as indicated by curve C in FIG. 5A by a linear function as indicated by straight line L. The straight line L in FIG. 5A is expressed by equation F=−0.3(|x−y|)+log 2 and the correction term shows a degree of degradation of about 0.1 dB.
On the other hand, the threshold value approximation method is designed to approximate function F=log {1+e{circumflex over (0)}(−|x−y|)} as indicated by curve C in FIG. 5B by a step function as indicated by curve T. The curve T in FIG. 5B is expressed by a function that gives log 2 for the interval of 0≦|x−y|<1 and 0 for the interval of |x−y|≧1. The correction term shows a degree of degradation of about 0.2 dB.
Thus, while various methods have been discussed for the purpose of log-sum correction, all of them still have something to be improved.
Not only the log-sum correction but also the above described operation of determining the maximum value gives rise to the problem of delay when determining the maximum likelihood path to baffle the efforts for realizing high speed decoding.